package com.jrx.anytxn.transaction.dto.payment;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jrx.anytxn.transaction.dto.common.CommonRes;
import com.jrx.anytxn.transaction.dto.loan.RepaymentPlanRes;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 账单分期试算返回
 *
 **/
public class LoanStagingTrailRes extends CommonRes implements Serializable {
    /**
     * 请求流水号
     */
    private String seqNo;

    /**
     * 订单金额
     */
    private BigDecimal loanAmount;

    /**
     * 期数
     */
    private Integer tenor;

    /**
     * 日利率
     */
    private BigDecimal dayRate;

    /**
     * 年利率
     */
    private BigDecimal yearRate;

    /**
     * 还款日
     */
    private Integer paymentDueDay;

    /**
     * 首次还款日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date firstPaymentDueDate;

    /**
     * 最后还款日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date lastPaymentDueDate;

    /**
     * 总还款金额
     */
    private BigDecimal totalPaymentAmount;
    /**
     * 总利息金额
     */
    private BigDecimal totalInterestAmount;
    /**
     * 总费用金额
     */
    private BigDecimal totalFeeAmount;

    /**
     * 还款计划
     */
    private List<RepaymentPlanRes> paymentPlanList;

    /**
     * 分期订单列表
     */
    private List<StagingLoanRes> stagingLoanResList;


    public String getSeqNo() {
        return seqNo;
    }

    public void setSeqNo(String seqNo) {
        this.seqNo = seqNo;
    }

    public BigDecimal getLoanAmount() {
        return loanAmount;
    }

    public void setLoanAmount(BigDecimal loanAmount) {
        this.loanAmount = loanAmount;
    }

    public Integer getTenor() {
        return tenor;
    }

    public void setTenor(Integer tenor) {
        this.tenor = tenor;
    }

    public BigDecimal getDayRate() {
        return dayRate;
    }

    public void setDayRate(BigDecimal dayRate) {
        this.dayRate = dayRate;
    }

    public Integer getPaymentDueDay() {
        return paymentDueDay;
    }

    public void setPaymentDueDay(Integer paymentDueDay) {
        this.paymentDueDay = paymentDueDay;
    }

    public Date getFirstPaymentDueDate() {
        return firstPaymentDueDate;
    }

    public void setFirstPaymentDueDate(Date firstPaymentDueDate) {
        this.firstPaymentDueDate = firstPaymentDueDate;
    }

    public Date getLastPaymentDueDate() {
        return lastPaymentDueDate;
    }

    public void setLastPaymentDueDate(Date lastPaymentDueDate) {
        this.lastPaymentDueDate = lastPaymentDueDate;
    }

    public BigDecimal getTotalPaymentAmount() {
        return totalPaymentAmount;
    }

    public void setTotalPaymentAmount(BigDecimal totalPaymentAmount) {
        this.totalPaymentAmount = totalPaymentAmount;
    }

    public BigDecimal getTotalInterestAmount() {
        return totalInterestAmount;
    }

    public void setTotalInterestAmount(BigDecimal totalInterestAmount) {
        this.totalInterestAmount = totalInterestAmount;
    }

    public BigDecimal getTotalFeeAmount() {
        return totalFeeAmount;
    }

    public void setTotalFeeAmount(BigDecimal totalFeeAmount) {
        this.totalFeeAmount = totalFeeAmount;
    }

    public List<RepaymentPlanRes> getPaymentPlanList() {
        return paymentPlanList;
    }

    public void setPaymentPlanList(List<RepaymentPlanRes> paymentPlanList) {
        this.paymentPlanList = paymentPlanList;
    }

    public List<StagingLoanRes> getStagingLoanResList() {
        return stagingLoanResList;
    }

    public void setStagingLoanResList(List<StagingLoanRes> stagingLoanResList) {
        this.stagingLoanResList = stagingLoanResList;
    }
    public BigDecimal getYearRate() {
        return yearRate;
    }

    public void setYearRate(BigDecimal yearRate) {
        this.yearRate = yearRate;
    }
}
